package com.joysuch.wwyt.bp.bean;

import com.joysuch.wwyt.core.bean.BaseAttachmentBean;
import com.joysuch.wwyt.mh.entity.MhMajorHazard;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;

@Data
@ApiModel(value = "预案计划")
public class BpEmergencyContingencyPlansBean implements Serializable {

    //预案id
    @ApiModelProperty(value = "预案id")
    private Long id;

    //预案名称
    @ApiModelProperty(value = "预案名称")
    private String name;

    //预案编码
    @ApiModelProperty(value = "预案编码")
    private String code;

    //适用部门
    @ApiModelProperty(value = "适用部门")
    private List<BpAddDepartBean> useDeparts;

    //预案类型
    @ApiModelProperty(value = "预案类型")
    private Long typeId;
    private String typeName;

    //关联危险源
    @ApiModelProperty(value = "关联危险源")
    private List<BpMhMajorHazardBean> hazards;

    //预案级别
    @ApiModelProperty(value = "预案级别名称")
    private String planLevelName;
    @ApiModelProperty(value = "预案级别id")
    private Long planLevel;

    //发布日期
    @ApiModelProperty(value = "发布日期")
    private LocalDate releaseDate;

    //应急成员
    @ApiModelProperty(value = "应急成员")
    private List<BpBaseUserBean> emergencyMembers;

    //预案内容
    @ApiModelProperty(value = "预案内容")
    private String content;

    //预案备注
    @ApiModelProperty(value = "预案备注")
    private String note;

    //编写人
    @ApiModelProperty(value = "编写人")
    private Long makeUserId;
    private String userName;

    //编写部门
    @ApiModelProperty(value = "编写部门")
    private Long makeDepartId;
    private String departName;

    //附件
    @ApiModelProperty(value = "附件")
    private List<BaseAttachmentBean> attachmentBeans;

    //预案状态
    @ApiModelProperty(value = "预案状态")
    private Integer state;
    private String stateName;

    //审核人
    @ApiModelProperty(value = "审核人")
    private Long auditUserId;
    private String auditUserName;

    //审核时间
    @ApiModelProperty(value = "审核时间")
    private Date auditTime;

    //审核备注
    @ApiModelProperty(value = "审核备注")
    private String auditRemaker;

    @Data
    public static class SearchPlanBean  implements Serializable {

        @ApiModelProperty(value = "分页查询:编码或者名称")
        private String codeOrName;
        //预案名称
        private String name;
        //预案编码
        private String code;
        //预案类型id
        private Long typeId;
        //预案级别
        private Long planLevel;
        //预案状态
        private String state;

    }
}
